package com.example.myapplication.rxjava

import com.example.myapplication.ben.Bean
import com.example.myapplication.ben.HomeData
import com.example.myapplication.ben.MainTabModel
import com.example.myapplication.upData.*
import retrofit2.http.*
import rx.Observable

interface ApiStores {
    public companion object {
        val pagerSize = 12

        //是否正式服
        var IS_ONLINE = false

        //正式
        var BaseURL_online = "https://image.so.com/"

        /**
         * http://47.116.3.108:8888/doc.html#/default/ECLOUDAPI/getoneappUsingGET
         */
        //测试
        var BaseURL_offline = "http://47.116.3.108:8888/"
        var API_SERVER_URL = if (IS_ONLINE) BaseURL_online else BaseURL_offline
    }


    @GET("ecloud/appapi/getbiurl")
    fun getWebViewUrl(@Query("appid") s: String): Observable<Bean<String>>;

    /**
     * 注册
     *
     *   需要参数
     *   用户名（唯一标识）  userName
     *   手机号  userMobile
     *   组织   userOrg
     */
    @POST("ecloud/appapi/userregedit")
    fun getLogin(@Body s: LoginModel): Observable<Bean<String>>;


    /**
     * 基础配置表-获取分类
     *
     *     需要参数
     *  创建人  createBy  唯一标识
     *   获取分类  右边tab
     */
    @GET("ecloud/appapi/getcatalist")
    fun getcatalist(@Query("createBy") createBy:String): Observable<Bean<MainTabModel>>;


    /**
     * APP下载记录新增-添加
     *
     *   需要参数
     *
     *   用户名（唯一标识）  userName
     *   手机号  userMobile
     *    组织   userOrg
     *
     */
    @POST("ecloud/appapi/addAppdownload")
    fun postAddAppdownload(@Body s: AddAppdownload): Observable<Bean<String>>;

    /**
     * app信息-获取bannerapp信息
     * 首页 列表1 banner 大图展示
     * appCata 分类
     *
     *  创建人  createBy  唯一标识
     *
     */
    @GET("ecloud/appapi/getbannerapplist")
    fun getbannerapplist(): Observable<Bean<Bannerapplist>>;

    /**
     * app信息-获取热门app信息
     * 首页 列表2 banner 中图
     * appCata 分类
     *
     *  创建人  createBy  唯一标识
     *
     */
    @GET("ecloud/appapi/gethotapplist")
    fun gethotapplist(): Observable<Bean<Hotapplist>>;

    /**
     * app信息-分页列表查询
     *
     * 首页 列表3 app展示列表
     * appCata 分类
     *
     *  创建人  createBy  唯一标识
     */
    @GET("ecloud/appapi/getapplist")
    fun getAppList(): Observable<Bean<AppListData>>;
    /**
     * app评价信息-添加
     *
     */
    @POST("ecloud/appapi/addEcloudAppBbs")
    fun postAddEcloudAppBbs(@Body s: AddEcloudAppBbs): Observable<Bean<String>>;





    /**
     * 获取APP最新下载地址
     */
    @GET("ecloud/appapi/getcersion")
    fun getcersion(@Query("appid") appid:String,@Query("appversion") appversion:String): Observable<Bean<String>>;



    /**
     *app信息-通过id获取单个app详情
     */
    @GET("ecloud/appapi/getoneapp")
    fun getoneapp(): Observable<Bean<OneApp>>;

    /**
     * app评价信息-通过主表ID查询
     */
    @GET("ecloud/appapi/listEcloudAppBbsByMainId")
    fun getListEcloudAppBbsByMainId(): Observable<Bean<ListEcloudAppBbsByMainId>>;

    /**
     * app版本信息-通过主表ID查询
     */
    @GET("ecloud/appapi/listEcloudAppVersionByMainId")
    fun getListEcloudAppVersionByMainId(): Observable<Bean<EcloudAppVersionByMainId>>;
}